package sg.edu.nus.iss.vmcs.ui;

public abstract class VMCSUIFactory {

	private static VMCSUIFactory singleton;
	
	public static synchronized VMCSUIFactory getInstance() {
		return getInstance(0);
	}
	
	private static synchronized VMCSUIFactory getInstance(int type) {
		if (type == 0) {
			singleton = new AWTFactory();
		} else {
			throw new UnsupportedOperationException("Unsupport paramater for factory");
		}
		return singleton;
	}
	
	public abstract VMCSAbstractButton createButton();
	public abstract VMCSAbstractLabel createLabel();
	public abstract VMCSAbstractPanel createPanel();
	public abstract VMCSAbstractTextField createTextField();
	
}
